package com.example.apidocserver.domain.system.service;

import com.example.apidocserver.domain.system.entity.AllEnum;
import com.example.apidocserver.interfaces.dto.IdsDto;

import java.util.List;

/**
 * 系统中所有的枚举(AllEnum)表服务接口
 *
 * @author makejava
 * @since 2023-02-25 20:02:49
 */
public interface AllEnumService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    AllEnum queryById(Integer id);

    /**
     * 查询所有对象
     *
     * @return 查询结果
     */
    List<AllEnum> queryAll();

    /**
     * 根据对象查询
     *
     * @param allEnum 筛选条件
     * @return 查询结果
     */
    List<AllEnum> queryByEntity(AllEnum allEnum);

    /**
     * 新增数据
     *
     * @param allEnum 实例对象
     * @return 实例对象
     */
    AllEnum insert(AllEnum allEnum);

    /**
     * 修改数据
     *
     * @param allEnum 实例对象
     * @return 实例对象
     */
    AllEnum update(AllEnum allEnum);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 批量插入或修改
     *
     * @param allEnums 枚举对象数字
     */
    void upsert(List<AllEnum> allEnums);

    List<AllEnum> getByTypeList(IdsDto ids);

    /**
     * 查询同种分类最大排序
     *
     * @param enumType 枚举类型
     * @return 排序值
     */
    int queryMaxOrder(Integer enumType);
}
